<?php
include_once '../conexion.php';
$_SESSION['seccion'] = 'amingreso_detalle';
//----------------------------------------------------

class ingresoDet{
    //ingdet_id, ingdet_prod_id, ingdet_depo_id, ingdet_egcab_id, ingdet_cantidad, ingdet_precio
    public $id;
    public $producto;
    public $deposito;
    public $ingresoCab;
    public $cantidad;
    public $precio;
    
    function __construct($id, $producto, $deposito , $ingresoCab, $cantidad, $precio, $presentacion) {
        $this->id = $id;
        $this->producto = $producto;
        $this->deposito = $deposito;
        $this->ingresoCab = $ingresoCab;
        $this->cantidad = $cantidad * $presentacion;
        $this->precio = $precio;
    }
}
?>
<?php //Acciones
$accion = isset($_GET["act"]) ? $_GET["act"] : '';
$REQUEST_ID_ = pg_escape_string(trim(isset($_REQUEST['ref_id']) ? $_REQUEST['ref_id'] : '0'));
$REQUEST_PARENT_ID=pg_escape_string(trim(isset($_REQUEST['ref_parent_id']) ? $_REQUEST['ref_parent_id'] : '0'));
$errsdiv = '';

function valida() {
    $errorMsg = array();
    $regex_id = '/^[1-9]{1,8}$/';
    global $REQUEST_PARENT_ID;

    if (!is_numeric($_POST["cantidad"])) {
        array_push($errorMsg, 'El valor ingresado como cantidad no es numerico.');
    }
    if (!is_numeric($_POST["precio"])) {
        array_push($errorMsg, 'El valor ingresado como precio no es numerico.');
    }
    if (!preg_match($regex_id, $_REQUEST["ref_parent_id"]) || $REQUEST_PARENT_ID=='0') {
        array_push($errorMsg, 'Comprobante incorrecto.');
    }
    if (!preg_match($regex_id, $_REQUEST["deposito"])) {
        array_push($errorMsg, 'Debe seleccionar un deposito.');
    }
    if (!preg_match($regex_id, $_REQUEST["producto"])) {
        array_push($errorMsg, 'Debe seleccionar un producto.');
    }

    return $errorMsg;
}

function guardarReg() {
    global $errsdiv;
    $msj = valida();
    divErr($msj);
    if (strlen(trim($errsdiv)) == 0) {
        $objArt = new ingresoDet($_POST["ref_id"], $_POST["producto"], $_POST["deposito"], $_REQUEST['ref_parent_id'], $_POST["cantidad"], 
                $_POST["precio"], $_POST["presentacion"]);
        if ($objArt->id == 0) {
            insertarReg($objArt);
        } else {
            modificarReg($objArt);
        }
        header("Location: ingresos_detalles.php?ref_parent_id=".$_REQUEST['ref_parent_id']);
    }
}

function insertarReg($obj){
    $sql = "INSERT INTO ingreso_det(ingdet_id, ingdet_prod_id, ingdet_depo_id, ingdet_ingcab_id, ingdet_cantidad, ingdet_precio) ".
           "VALUES (lastid('ingreso_det','ingdet_id'), {$obj->producto}, {$obj->deposito}, {$obj->ingresoCab}, {$obj->cantidad}, {$obj->precio});";
    $sql .= "INSERT INTO seguridad.log_datos(logd_id, logd_usu_id, logd_tablename, logd_operacion, logd_tableid) ".
            "VALUES (lastid('seguridad.log_datos','logd_id'), ".$_SESSION['usu_id_16856'].", 'ingreso_det', 'INSERT', lastid('ingreso_det','ingdet_id')-1);";
    $sql .= "UPDATE producto SET prod_ultimo_precio = {$obj->precio} WHERE prod_id = {$obj->producto} AND prod_ultimo_precio < {$obj->precio};";
    $con = new Conexion;
    $result = $con->retornar($sql);
}

if(isset($_POST["guardaringdet"])){
    guardarReg();
}

function modificarReg($obj){
    $sql = "UPDATE ingreso_det SET ".
            "ingdet_prod_id={$obj->producto}, ingdet_depo_id={$obj->deposito}, ingdet_ingcab_id={$obj->ingresoCab}, ".
            "ingdet_cantidad={$obj->cantidad}, ingdet_precio={$obj->precio} ".
            "WHERE ingdet_id={$obj->id};";
    $sql .= "INSERT INTO seguridad.log_datos(logd_id, logd_usu_id, logd_tablename, logd_operacion, logd_tableid) ".
            "VALUES (lastid('seguridad.log_datos','logd_id'), ".$_SESSION['usu_id_16856'].", 'ingreso_det', 'UPDATE', {$obj->id});";
    $sql .= "UPDATE producto SET prod_ultimo_precio = {$obj->precio} WHERE prod_id = {$obj->producto} AND prod_ultimo_precio < {$obj->precio};";
    $con = new Conexion;
    $result = $con->retornar($sql);
}
?>
<?php


function getSelectedReg() {
    global $REQUEST_ID_;
    $sqlstr = "SELECT ingdet_id, ingdet_prod_id, ingdet_depo_id, ingdet_ingcab_id, ingdet_cantidad, ingdet_precio ".
            "FROM ingreso_det " .
            "WHERE (ingdet_id = {$REQUEST_ID_}) ";
    $row = '';
    $conn = new Conexion();
    $consulta = $conn->retornar($sqlstr);
    return $consulta;
}

function divErr($mensajes) {
    global $errsdiv;
    if ((count($mensajes) > 0)) {
        if (trim($mensajes[0]) != '') {
            $errsdiv .= '<div class="err_inputs"><ul>';
            foreach ($mensajes as $keyid => $val) {
                $errsdiv .= '<li>' . $val . '</li>';
            }
            $errsdiv .= '</ul></div>';
        }
    }
}

function listarDepositos($selected) {
    $sqlstr = "SELECT depo_id, depo_nombre FROM deposito ";
    $sqlstr .= " ORDER BY depo_nombre";
    $row = '';
    $conn = new Conexion();
    $consulta = $conn->retornar($sqlstr);
    $row = '<select name="deposito" style="width: 220px">';
    $sel = $selected == 0 ? 'selected = "selected"' : '';
    //$row .= ' <option value="0" ' . $sel . '><span style="color:#516770; font-style:oblique; font-weight:bold">--Todos--</span></option>';
    while ($reg = pg_fetch_object($consulta)) {
        $sel = $selected == $reg->depo_id ? 'selected = "selected"' : '';
        $row .= ' <option value="' . $reg->depo_id . '" ' . $sel . '>' . $reg->depo_nombre . '</option>';
    }
    $row .='</select>';
    echo $row;
}

function listarProductos($selected) {
    $sqlstr = "SELECT prod_id, prod_nombre, uni_abreviado, prod_codigo FROM producto, unidad WHERE prod_uni_id = uni_id";
    $sqlstr .= " ORDER BY trim(prod_codigo)";
    $row = '';
    $conn = new Conexion();
    $consulta = $conn->retornar($sqlstr);
    $row = '<select name="producto" style="width: 300px" onchange="getPrecioVenta(this.value)">';
    $sel = $selected == 0 ? 'selected = "selected"' : '';
    //$row .= ' <option value="0" ' . $sel . '><span style="color:#516770; font-style:oblique; font-weight:bold">--Todos--</span></option>';
    while ($reg = pg_fetch_object($consulta)) {
        $sel = $selected == $reg->prod_id ? 'selected = "selected"' : '';
        $row .= ' <option value="' . $reg->prod_id . '" ' . $sel . '>'.$reg->prod_codigo.' - '. $reg->prod_nombre . ' '.$reg->uni_abreviado.'</option>';
    }
    $row .='</select>';
    echo $row;
}
?>
<?php
$regcantidad = isset($_POST["cantidad"])?$_POST["cantidad"]:'';
$regprecio = isset($_POST["precio"])?$_POST["precio"]:'';
$regdeposito = isset($_POST["deposito"])?$_POST["deposito"]:'0';
$regproducto = isset($_POST["producto"])?$_POST["producto"]:'0';
$regpresentacion = isset($_POST["presentacion"])?$_POST["presentacion"]:'1.00';
if($REQUEST_ID_ != '0'){
    $queryObj = getSelectedReg();
    if ($regObj = pg_fetch_object($queryObj)) {
        $regcantidad = $regObj->ingdet_cantidad;
        $regprecio = strToShowValue($regObj->ingdet_precio);
        $regdeposito = strToShowValue($regObj->ingdet_depo_id);
        $regproducto = $regObj->ingdet_prod_id;
    }
    $queryObj = null;
}
?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>L&iacute;nea de detalle</title>
        <script type="text/javascript" src="../utilidades.js"></script>
        <script type="text/javascript" src="amingreso_detalle.js"></script>
        <link href="../css/doc.css" rel="stylesheet" type="text/css"/>
    </head>
    <body style="background-color:cornsilk;">
        <?php //control de acceso
        if(!isset ($_SESSION['usu_rusu_id'])){
            echo '<span style="color:red;">No tiene acceso a esta pantalla.</span>'.
                '</body>';
            die;            
        }
        ?>
        <table class="pageTitle" width="100%">
            <tbody>
                <tr>
                    <td class="title_nm">L&iacute;nea de detalle</td><td class="watermark_right">&nbsp;</td>
                </tr>
            </tbody>
        </table>
        <hr/>
        <div id="div_data_error"><?php echo $errsdiv ?></div>
        <form name="form_ingdet" id="form_ingdet" method="post" action="amingreso_detalle.php?ref_parent_id=<?php echo $REQUEST_PARENT_ID ?>" onsubmit="return guardarRegistro()">
            <input type="hidden" name="ref_id" value="<?php echo $REQUEST_ID_ ?>"/>
            <table>
                <tr>
                    <td>Producto:</td>
                    <td>
                        <?php
                           listarProductos($regproducto);
                        ?>
                    </td>
                </tr>
                <tr>
                    <td>Cantidad:</td><td><input type="text" name="cantidad" value="<?php echo $regcantidad?>" size="12" maxlength="8" onkeypress="return isNumeric(event);"/></td>
                </tr>
                <tr>
                    <td>Presentaci&oacute;n:</td><td><input type="text" id="presentacion" name="presentacion" value="<?php echo $regpresentacion?>" size="12" maxlength="8" onkeypress="return isNumeric(event);" onblur="getStock(document.getElementById('producto').value, document.getElementById('deposito').value, this.value)"/></td>
                </tr>
                <tr>
                    <td>Precio:</td><td><input type="text" name="precio" value="<?php echo $regprecio?>" size="12" maxlength="8" onkeypress="return isNumeric(event);"/></td>
                </tr>
                <tr>
                    <td>Dep&oacute;sito:</td>
                    <td>
                        <?php
                           listarDepositos($regdeposito);
                        ?>
                    </td>
                </tr>
                <tr>
                    <td colspan="2" align="center"><input type="submit" name="guardaringdet" value="Guardar"/>
                        <input type="button" name="cancelar" value="Cancelar" onclick="self.location='ingresos_detalles.php?ref_parent_id=<?php echo $REQUEST_PARENT_ID ?>';"/></td>
                </tr>
            </table>
        </form>
        <?php
        if($REQUEST_ID_ == '0'){
        ?>
        <script type="text/javascript">
            getPrecioVenta(document.getElementById('form_ingdet').producto.value);
        </script>
        <?php
        }
        ?>
    </body>
</html>
